'\" t
.TH "OS\-RELEASE" "5" "" "systemd 231" "os-release"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
os-release \- 操作系统标识
.SH "SYNOPSIS"
.PP
/etc/os\-release
.PP
/usr/lib/os\-release
.SH "描述"
.PP
/etc/os\-release
与
/usr/lib/os\-release
文件包含了操作系统识别数据。
.PP
os\-release
文件的基本格式是 一系列换行符分隔的 VAR=VALUE 行(每行一个变量)， 可以直接嵌入到 shell 脚本中使用。 注意，此文件并不支持变量替换之类的任何高级 shell 特性， 以便于应用程序无须支持这些高级 shell 特性， 即可直接使用此文件。 如果 VALUE 值中包含任何非字母数字字符(也就是 A\(enZ, a\(enz, 0\(en9 之外的字符)， 那么必须使用引号(单双皆可)界定， 并且任何在Shell中具有特殊含义的字符， 包括：美元符, 单双引号, 反斜线, 反引号 \&.\&.\&. 等等，都必须使用shell风格的反斜线进行转义。 所有字符串都必须使用UTF\-8编码， 并且禁止使用一切非打印字符。 以"#"开头的行将被作为注释忽略。
.PP
应用程序应该只读取
/etc/os\-release
文件， 仅在
/etc/os\-release
不存在的情况下， 才可以读取
/usr/lib/os\-release
文件。 绝对禁止应用程序同时读取两个文件。 操作系统发行商应该将操作系统识别数据存放在
/usr/lib/os\-release
文件中， 同时将
/etc/os\-release
作为一个软连接， 以相对路径的方式指向
/usr/lib/os\-release
文件， 以提供应用程序读取
/etc
的兼容性。 软连接使用相对路径是为了避免在 chroot 或 initrd 环境中失效。
.PP
os\-release
的内容应当仅由发行版的供应商设置， 系统管理员一般不应该修改此文件。
.PP
因为此文件仅用于操作系统识别， 所以必须禁止包含任何需要本地化的内容(也就是禁止包含非ASCII字符)。
.PP
/etc/os\-release
与
/usr/lib/os\-release
可以是软连接， 但是必须全部位于根文件系统上， 以确保在系统刚启动时即可读取其内容。
.PP
更多有关
os\-release
的理解， 请参阅
\m[blue]\fBAnnouncement of /etc/os\-release\fR\m[]\&\s-2\u[1]\d\s+2
.SH "选项"
.PP
可以在
os\-release
中使用下列操作系统识别字段：
.PP
\fINAME=\fR
.RS 4
不带版本号且适合人类阅读的操作系统名称。这是必填字段。例如：
"NAME=Fedora"
或
"NAME="Debian GNU/Linux""
。 默认值是
"NAME=Linux"
。
.RE
.PP
\fIVERSION=\fR
.RS 4
操作系统的版本号。 禁止包含操作系统名称，但是可以包含适合人类阅读的发行代号。 这是可选字段。 例如：
"VERSION=17"
或
"VERSION="17 (Beefy Miracle)""
.RE
.PP
\fIID=\fR
.RS 4
小写字母表示的操作系统名称， 禁止包含 0\(en9, a\(enz, "\&.", "_", "\-" 以外的字符，禁止包含任何版本信息。 该字段适合被程序或脚本解析，也可用于生成文件名。 这是必填字段。例如：
"ID=fedora"
或
"ID=debian"
。 默认值是
"ID=linux"
。
.RE
.PP
\fIID_LIKE=\fR
.RS 4
一系列空格分隔的字符串， 其中的每一项都符合
\fIID=\fR
字段的规范， 也就是仅包含 0\(en9, a\(enz, "\&.", "_", "\-" 字符。 此字段用于表明当前的操作系统 是从哪些"父发行版"派生而来， 切勿列出从此发行版派生的"子发行版"， 排列顺序由近到远， 关系最近的发行版名称排在最前， 紧密度依次递减。 应用程序如果不能识别
\fIID=\fR
字段的内容， 那么可以参考此字段。 这是可选字段。 比如对于
"ID=centos"来说，
"ID_LIKE="rhel fedora""
就是一个合理的设置。 而对于
"ID=ubuntu"
来说，
"ID_LIKE=debian"
也很合理。
.RE
.PP
\fIVERSION_CODENAME=\fR
.RS 4
小写字母表示的操作系统发行代号， 禁止包含 0\(en9, a\(enz, "\&.", "_", "\-" 以外的字符， 禁止包含任何版本信息以及操作系统名称。 该字段适合被程序或脚本解析， 也可用于生成文件名。 这是可选字段， 并且某些发行版可能不存在此字段。例如：
"VERSION_CODENAME=buster",
"VERSION_CODENAME=xenial"
.RE
.PP
\fIVERSION_ID=\fR
.RS 4
小写字母表示的操作系统版本号， 禁止包含 0\(en9, a\(enz, "\&.", "_", "\-" 以外的字符， 禁止包含操作系统名称与发行代号。 该字段适合被程序或脚本解析， 也可用于生成文件名。 这是可选字段。例如：
"VERSION_ID=17"
或
"VERSION_ID=11\&.04"
.RE
.PP
\fIPRETTY_NAME=\fR
.RS 4
适合人类阅读的比较恰当的发行版名称， 可选的包含发行代号与系统版本之类的信息，内容比较随意。 这是必填字段。 例如：
"PRETTY_NAME="Fedora 17 (Beefy Miracle)""
。 默认值是
"PRETTY_NAME="Linux""
。
.RE
.PP
\fIANSI_COLOR=\fR
.RS 4
在控制台上显示操作系统名称的文字颜色。 必须设为符合 ESC [ m ANSI/ECMA\-48 转义代码规范的字符串。 这是可选字段。 例如：
"ANSI_COLOR="0;31""(红色) 或
"ANSI_COLOR="1;34""(淡蓝)
.RE
.PP
\fICPE_NAME=\fR
.RS 4
操作系统的"CPE名称"(URI绑定语法)， 详见
\m[blue]\fBCommon Platform Enumeration Specification\fR\m[]\&\s-2\u[2]\d\s+2
文档。 这是可选字段。例如：
"CPE_NAME="cpe:/o:fedoraproject:fedora:17""
.RE
.PP
\fIHOME_URL=\fR, \fISUPPORT_URL=\fR, \fIBUG_REPORT_URL=\fR, \fIPRIVACY_POLICY_URL=\fR
.RS 4
与操作系统相关的互联网地址。
\fIHOME_URL=\fR
操作系统的主页地址， 或者特定于此版本操作系统的页面地址。
\fISUPPORT_URL=\fR
操作系统的支持页面(若存在)， 主要用于发行商提供技术支持的页面。
\fIBUG_REPORT_URL=\fR
故障汇报页面(若存在)， 主要用于基于社区互动的发行版。
\fIPRIVACY_POLICY_URL=\fR
隐私条款页面(若存在)。 上述URL应该分别出现在"About this system"界面下的 "About this Operating System", "Obtain Support", "Report a Bug", "Privacy Policy" 子界面中。 这些字段的值必须符合
\m[blue]\fBRFC3986\fR\m[]\&\s-2\u[3]\d\s+2
规范， 通常以
"http:"
或
"https:"
开头， 但也可能以
"mailto:"
或
"tel:"
开头。 例如：
"HOME_URL="https://fedoraproject\&.org/""
与
"BUG_REPORT_URL="https://bugzilla\&.redhat\&.com/""
.RE
.PP
\fIBUILD_ID=\fR
.RS 4
用于区分同一版本操作系统的不同编译次序的唯一标示符(不会被系统更新所修改)。 该字段在不同的 VERSION_ID 之间有可能是相同的， 因为 BUILD_ID 仅在同一版本号内部保持唯一。 每当发布新版本的操作系统时， 只需要更新 VERSION_ID 字段即可，并不一定必须更新 BUILD_ID 字段。 这是可选字段。 例如：
"BUILD_ID="2013\-03\-20\&.3""
或
"BUILD_ID=201303203"
.RE
.PP
\fIVARIANT=\fR
.RS 4
适合人类阅读的发行版分支标识符。 用于向用户表明 此系统的默认配置是专门面向特定应用场景的。 这是可选字段， 并且某些发行版可能不存在此字段。 例如：
"VARIANT="Server Edition"",
"VARIANT="Smart Refrigerator Edition""
注意，此字段仅用于显示目的， 程序应该使用
\fIVARIANT_ID\fR
字段进行可靠的判断。
.RE
.PP
\fIVARIANT_ID=\fR
.RS 4
小写字母表示的发行版分支标识符， 禁止包含 0\(en9, a\(enz, "\&.", "_", "\-" 以外的字符。 该字段适合被程序或脚本解析， 也可用于生成文件名。 这是可选字段， 并且某些发行版可能不存在此字段。 例如：
"VARIANT_ID=server",
"VARIANT_ID=embedded"
.RE
.PP
如果要在程序中检测发行版名称及其变种， 那么可以使用
\fIID\fR
与
\fIVERSION_ID\fR
字段， 并将
\fIID_LIKE\fR
用作
\fIID\fR
的替补。 如果想要向用户显示发行版的名称， 那么可以使用
\fIPRETTY_NAME\fR
字段。
.PP
注意， 滚动发布的发行版可能不会提供版本信息， 也就程序不能假定
\fIVERSION\fR
与
\fIVERSION_ID\fR
字段必然存在。
.PP
操作系统的发行商可能为此文件引入新的字段， 强烈建议为新引入的字段使用特别的前缀以避免冲突。 读取此文件的程序应该能够安全的忽略不理解的字段。 例如：
"DEBIAN_BTS="debbugs://bugs\&.debian\&.org/""
.SH "例子"
.sp
.if n \{\
.RS 4
.\}
.nf
NAME=Fedora
VERSION="24 (Workstation Edition)"
ID=fedora
VERSION_ID=24
PRETTY_NAME="Fedora 24 (Workstation Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:24"
HOME_URL="https://fedoraproject\&.org/"
BUG_REPORT_URL="https://bugzilla\&.redhat\&.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=24
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=24
PRIVACY_POLICY_URL=https://fedoraproject\&.org/wiki/Legal:PrivacyPolicy
VARIANT="Workstation Edition"
VARIANT_ID=workstation
.fi
.if n \{\
.RE
.\}
.SH "参见"
.PP
\fBsystemd\fR(1),
\fBlsb_release\fR(1),
\fBhostname\fR(5),
\fBmachine-id\fR(5),
\fBmachine-info\fR(5)
.SH "NOTES"
.IP " 1." 4
Announcement of /etc/os-release
.RS 4
\%http://0pointer.de/blog/projects/os-release
.RE
.IP " 2." 4
Common Platform Enumeration Specification
.RS 4
\%http://scap.nist.gov/specifications/cpe/
.RE
.IP " 3." 4
RFC3986
.RS 4
\%https://tools.ietf.org/html/rfc3986
.RE
.\" manpages-zh translator: 金步国
.\" manpages-zh comment: 金步国作品集：http://www.jinbuguo.com
